'''
Created on 23/06/2014

@author: Vitor
'''

def testa(numEntradasTreino, entradas, zDesejado, omegasEntradaMeio, omegasMeioSaida, tetasMeio, tetaSaida, f):
    numEntradas = len(entradas)
    zCalculados = []
    
    for i in range(numEntradas):
            #saidas da camada intermediaria
            kCalculado = []
            
            #print("\nEntrada " + str(i) + ":")
            
            #---------------------------------------------------------------------------------------------------------------------
            #calcula valor de saida dos neuronios da camada intermediaria
            for k in range(len(tetasMeio)):
                kCalcAtual = 0
                for j in range(len(entradas[i])):
                    kCalcAtual += entradas[i][j]*omegasEntradaMeio[j][k]
                kCalcAtual -= tetasMeio[k]
                
                kCalcAtual = f(kCalcAtual)
                
                kCalculado.append(kCalcAtual)
            
            #---------------------------------------------------------------------------------------------------------------------
            #calcula valor da saida da rede
            zCalculado = 0
            for k in range(len(tetasMeio)):
                zCalculado += kCalculado[k]*omegasMeioSaida[k]
            zCalculado -= tetaSaida
            
            zCalculado = f(zCalculado)
            
            zCalculados.append(zCalculado)
    
    arquivo = open("../arquivos/saida/testes" + str(numEntradasTreino) + "entradas-" + str(len(tetasMeio)) + "neuronios.txt", 'w')
    
    acertos = 0
    j = 500
    for i in range(numEntradas):
        if abs(zCalculados[i] - zDesejado[i]) < 0.01:
            arquivo.write("Entrada " + str(j) + " deu Positivo!\n")
            acertos += 1
        else:
            arquivo.write("Entrada " + str(j) + " deu Negativo!\n")
        
        j += 1
    
    arquivo.write("\n\n-------------------------------------------------------------------------------------------------")
    arquivo.write("\n\nO teste conseguiu " + str(acertos) + " acertos de um total de " + str(numEntradas) + " entradas!")